﻿using BCCommon.OAEnums.Businessflow;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

namespace BCDto.OA.PageBusiness.PageBusinessMappingDepartment
{
    /// <summary>
    /// OA系统页面业务映射部门
    /// </summary>
    public class PageBusinessMappingDepartmentRequestDto
    {
        /// <summary>
        /// OA系统页面业务配置Id
        /// </summary>		
        [Display(Name= "页面业务配置")]
        [Required(ErrorMessage ="{0} 为必选项")]
        public long PageBusinessConfigId { get; set; }
        /// <summary>
        /// 部门Id
        /// </summary>		
        [Display(Name = "部门")]
        [Required(ErrorMessage = "{0} 为必选项")]
        public int DepartmentId { get; set; }
        /// <summary>
        /// 公司Id
        /// </summary>		
        [Display(Name = "公司")]
        [Required(ErrorMessage = "{0} 为必选项")]
        public int CompanyId { get; set; }
        /// <summary>
        /// 是否所有职位显示
        /// </summary>		
        [Display(Name = "是否所有职位显示")]
        [Required(ErrorMessage = "{0} 为必选项")]
        public bool IsAllJobTitle { get; set; }
        /// <summary>
        /// 允许显示的职位
        /// </summary>		
        [Display(Name = "允许显示的职位")]
        [StringLength(1000,MinimumLength = 0,ErrorMessage = "{0} 设置过多,请联系系统管理员")]
        public string AllowJobTitle { get; set; }
        /// <summary>
        /// 业务流模型Id
        /// </summary>
        [Display(Name = "业务流模型Id")]
        public long? BusinessFlowModelId { get; set; }
        /// <summary>
        /// 是否自动分配
        /// </summary>
        [Display(Name = "是否自动分配")]
        [Required(ErrorMessage ="{0} 为必选项")]
        public bool IsAutoAssign { get; set; }
        /// <summary>
        /// 分配规则类型
        /// </summary>
        [Display(Name = "分配规则类型")]
        public BusinessflowAssignRuleType? AssignRuleType { get; set; }

        /// <summary>
        /// 已启用辅助规则
        /// </summary>
        [Display(Name = "已启用辅助规则")]
        public bool IsEnabledAuxiliaryRule { get; set; }

        /// <summary>
        /// 预定义超时处理小时数
        /// </summary>
        [Display(Name = "预定义超时处理小时数")]
        public int PredefinedTimeoutHour { get; set; }
        /// <summary>
        /// 通知分类Id
        /// </summary>
        [Display(Name = "通知分类")]
        public long NotificationCategoryId { get; set; }
    }
}
